 package cn.edu.ujn.service.impl;

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.edu.ujn.dao.Customer;
import cn.edu.ujn.dao.CustomerMapper;
import cn.edu.ujn.service.ICustomerService;
import cn.edu.ujn.utils.Page;
@Service
public class CustomerServiceImpl implements ICustomerService {

    @Autowired
    private CustomerMapper customerMapper;
    @Override
    public Page<Customer> selectByCondintion(Integer currentPage, Integer pageSize, String custName, String custSource,
            String custIndustry, String custLevel) {
        //因为各种参数类型不同，可以用map 去处理key-->value
        //用map集合去把各种参数
        HashMap map = new HashMap();
        Page<Customer> page = new Page<Customer>();
        //搜索参数
        map.put("cust_name", custName);
        map.put("cust_source", custSource);
        map.put("cust_industry", custIndustry);
        map.put("cust_level", custLevel);
        //计算当前的页面最后的一行的，然后作为查询的开始位置，key必须用start,工具类的导航类已经写名字了，必须对应
        map.put("start", (currentPage-1)*pageSize);
        //设置页面显示多少行，key必须用rows,工具类的导航类已经写名字了，必须对应
        map.put("rows", pageSize);
        //按照给的搜索条件进行查询，返回List客户列表
        List<Customer> Rows = customerMapper.selectCustomerList(map);
        //计算上面条件进行查询的总行数
        int Total=customerMapper.selectCustomerListCount(map);
        //设置分页
        page.setPage(currentPage);//设置当前页面
        page.setSize(pageSize);//设置页面大小
        page.setRows(Rows);//条件查询的结果返回
        page.setTotal(Total);//总行数
        
        //返回一个Page对象
        return page;
    }
    
    //删除
    @Override
    public int deleteCustomer(Integer id) {
        return customerMapper.deleteByPrimaryKey(id);
    }
    //创建客户
    @Override
    public int creatCustomer(Customer customer) {
        
        return customerMapper.insert(customer);
    }
    //通过id 获取该客户的信息
    @Override
    public Customer getCustomerById(Integer id) {
        return customerMapper.selectByPrimaryKey(id);
    }
    //更新客户信息
    @Override
    public int updateCustomer(Customer customer) {
        //使用updateByPrimaryKeySelective这个方法，因为使用updateByPrimaryKey没有判断空字段操作
        return customerMapper.updateByPrimaryKeySelective(customer);
    }

}
